# 🐘 Chat-socket | PHP7
Suportado nos navegadores a partir de 2017, nativas do firefox desde as versões de 2016, [veja as relações de suportes](https://kangax.github.io/compat-table/es6/). 
## Projeto oficial 🏆
Um chat criado com motor em PHP no servidor, usando o socket protocol 🤘🏿 real-time 🍃 levinho.

## Sumário 🔎

* [Estrutura do index.php](https://notabug.org/Jul10l1r4/Chat-Socket-PHP#indexphp)

* [Estrutura do respostas.php](https://notabug.org/Jul10l1r4/Chat-Socket-PHP#dispararphp)

* [Estrutura do arquivi disparar.php](https://github.com/Jul10l1r4/Chat-socket#-dispararphp)

* [Estrutura do sockets.js](https://notabug.org/Jul10l1r4/Chat-Socket-PHP#socketsjs)

* [Instruções para uso](https://notabug.org/Jul10l1r4/Chat-Socket-PHP#instru%C3%A7%C3%B5es-para-uso-desse-chat-)

* [Execute o chat WebSocket em PHP](https://notabug.org/Jul10l1r4/Chat-Socket-PHP#execute-o-chat-)
 

# 🔧 Estrutura
### Index.php🤘🏿

Nesse arquivo tem o necessário para a conexão em javascript e estilização em css como referencia em sí, vale lembrar para permitir as caracterações no arquivo no dentro do `head`.

 ```html
    <meta charset="utf-8"/>
 ```

> Obs.: Sinta-se livre para me mandar pull request e ajeitar esse designer 🙊
   
  
### Respostas.php🤘🏿


  Esse arquivo possui 137 linhas de códigos comentadas e explicativas para ajudar a configurar conforme seja o desejo de sua aplicação.

### Disparar.php🤘🏿
 Seu nome bastante descritivo, precisa ser configurado conforme o servidor e  a versão do php, colocando a sua      sintaxe. **infelizmente esse código de disparo é compatível apenas com Unix-Likes**.
 
### Sockets.js🤘🏿

Script moderno usando o [arrow function](https://github.com/airbnb/javascript#arrow-functions) (segundo o padrão do codestyle [airbnb](https://github.com/airbnb/javascript). Esse script faz um tratamento de funções de socket, abre conexão, precisa ser configurada a porta e o endereço de onde deseja ser aberta e todas as configurações de saídas👌🏽.

# Instruções para uso desse chat 🎖

Antes de usa-lo preste atenção para alguns detalhes vitais para ele.

## Antes de fazer qualquer coisa em um servidor, *teste em sua maquina local* 🙇🏾‍

É ideal que faça o teste para que não venha por seu serviço web em riscos, ou vunerabilidade, verifique a porta, notifique o firewall evite alterar ele no próprio servidor, isso é perigoso.

## Abra e estude todos os códigos 🤓

Estude os códigos, pois será usado por você, [personalize conforme sua vontade](https://notabug.org/Jul10l1r4/Chat-Socket-PHP/#-esse-projeto-%C3%A9-livre-sob-lice%C3%A7a-gpl-3-), pode vender o seu alterado, pode mudar e usar pra você (Lembrando de citar de onde o tirou).

 
Não esqueça de dar uma boa estudada no código disparar.php, ele tem uma função chamada [exec()](http://php.net/manual/pt_BR/function.exec.php), que executa códigos bash, lembre-se de executar uma vez, se for no servidor apenas uma para sempre, mude o arquivo de lugar, é perigoso que alguma pessoa execute mais vezes, isso causará problemas com os processos, caso isso aconteça você deve re-iniciar o servidor.


Caso tenha esperiencia com o unix-like, você pode ver todos os processos usando o programa `top`:

```bash
    top
```
 Onde você verá o processo que provavelmente chame-se php e ele estará repetido, então você finalizará usando seu pid:
 
 ```bash
    kill 2018 # 2018, ponha o numero do pid identificado, isso é apenas um exemplo
 ```
 
No arquivo `respostas.php` edite as variáveis responsável por dar o local de onde será o socket, também a qual é o numero da porta que será aberta, edite também a mensagem de conexão bem sucedida, o que não acho algo que deva aparecer a um visitate de sua aplicação.

No arquivo `sockets.js` altere o destino conforme o do php, talvez o endereço da porta também, nele possui algumas saídas de mensagens, ela possui o `id avisos` e o `id conteudo`, as mensagens são expostas no `id message`, esse arquivo tem 49 linhas de códigos comentadas exclaressendo padrões e mostrando fontes.

# Execute o chat 👿

*Atenção*: Não é indicado usa-la em um servidor online antes de configura-la para usar em sua aplicação.

Para rodar a aplicação você precisa navegar onde o servidor esta rodando e baixar para isso execute no seu unix-like:

```bash
    $ wget https://notabug.org/Jul10l1r4/Chat-Socket-PHP/archive/master.zip && unzip master.zip && cd chat-socket-php
```

ou

```bash
    $ git clone https://notabug.org/Jul10l1r4/Chat-Socket-PHP.git && cd Chat-Socket-PHP
```

Edite os arquivos configure-os, já que estais no terminal, executaremos a nossa aplicação

```
    $ php socket/respostas.php 
```

E agora, faça a festa, abra o browser e navegue até a aplicação e abra:

<img src="https://notabug.org/Jul10l1r4/Chat-Socket-PHP/raw/master/Print-readme/screenshot.png" />

Edite o arquivo `disparar.php` para não precisar executar através do terminal, para fazer isso aperte `control + c` (isso parará a execução do serviço de socket que foi executado nos códigos anteriores), você pode digitar os seguintes comandos:

```bash 
    $ pwd
```
 
 Copie a informação alí, você pode marcar o texto e apertar `control + shift + c`, agora feche o terminal e abra o arquivo `disparar.php` na pasta do servidor em `Chat-Socket-PHP/disparar.php` use o editor de sua preferência e no arquivo aberto edite a informação:
 
 ```php	

    <?php //Não use espaçamento entre o texto colado e o resto da string
      exec( "/usr/bin/php Cole aqui o a informação pega no código acima/socket/respostas.php" );
 ```
 
 Cole a informação copiada pelo terminal no lugar indicado, salve e fim, agora basta identificar o arquivo no seu browser, que provavelmente será em `http://localhost/Chat-Socket-PHP/disparar.php`. 
  
# Veja o artigo

Quer mais detalhes? então, fiz um artigo falando detalhadamentes sobre a aplicação em sí e seu funcionamento veja em [@jul10l1r4](https://rootthings.org/artigos/PHP/Chat-web-socket/)

## Esse projeto é livre sob liceça GNU GPL-3 🐏
 Use e abuse, cite-me e estará tudo certo 😸. Leia sobre a licença [GPL-3](https://www.gnu.org/licenses/gpl-3.0-standalone.html)